1. Field of the Invention
The present invention generally relates to computer systems, specifically, to a method of displaying information associated with computer file systems, such as devices, directories, files, and symbolic links, and more particularly to such a method that displays a tree structure having expandable/collapsible nodes.
2. Description of Related Art
A typical structure for a conventional computer system includes one or more processing units connected to a system memory device (random access memory or RAM) and to various peripheral, or input/output (I/O), devices such as a display monitor, a keyboard, a graphical pointer (mouse), and a permanent storage device (hard disk). The system memory device is used by a processing unit in carrying out program instructions, and stores those instructions as well as data values that are fed to or generated by the programs. A processing unit communicates with the other components by various means, including one or more interconnects (buses), or direct memory-access channels. A computer system may have many additional components, such as serial and parallel ports and expansion slots for connection to, e.g., printers and network adapters. Other components might further be used in conjunction with the foregoing; for example, a display adapter might be used to control a video display monitor, a memory controller can be used to access the system memory, etc.
To an end user, most computer systems have the same general structure for storing and accessing data, that is, by placing the data in xe2x80x9cfilesxe2x80x9d whose names have a particular format, and placing the files in xe2x80x9cfoldersxe2x80x9d or xe2x80x9cdirectoriesxe2x80x9d to further organize them. These files and directories are physically encoded into the machine""s storage device, e.g., hard disk, along with other logical file system objects, such as symbolic links (xe2x80x9cshortcutsxe2x80x9d or xe2x80x9caliasesxe2x80x9d for other devices, directories or files). Computer operating systems such as UNIX, OS/2 or MS-DOS use this type of a filing system (xe2x80x9cUNIXxe2x80x9d is a trademark of UNIX System Laboratories; OS/2 is a trademark of International Business Machines Corp.; MS-DOS is a trademark of Microsoft Corp.). In these systems, each file has a unique path name which identifies its location within the file structure.
Most computers have a xe2x80x9crootxe2x80x9d directory from which all other directories or sub-directories branch out, so it is convenient to display the file system as a tree structure. A directory tree allows a user to organize software applications or data which have related subject matter or a common theme. Additionally, software applications can organize directory tree members into a hierarchical configuration. A directory tree is typically displayed within a graphical user interface (GUI) of the computer system. A GUI allows a user to select files and otherwise manipulate the display and execute commands utilizing a graphical pointing device, commonly referred to as a mouse.
As shown in FIG. 1A, a typical GUI may display a directory tree 10 within a pane 12 of a larger window area 14. In this example, pane 12 is on the left side of window 14, while the right side contains another pane 16 which is used to display logical file system objects that reside in a particular device or directory that has been selected in pane 12. The root directory for this file system is the xe2x80x9cDesktopxe2x80x9d which includes three items: xe2x80x9cMy Computerxe2x80x9d; xe2x80x9cNetworkxe2x80x9d; and xe2x80x9cRecycle Binxe2x80x9d. In FIGS. 1A-1D, right pane 16 displays the same objects since xe2x80x9cMy Computerxe2x80x9d is selected in left pane 12 for each of those figures. User selection of one of these objects can be accomplished by xe2x80x9cpointing and clickingxe2x80x9d the object using the mouse.
The items which reside in the root directory are connected or linked in the GUI using a vertical (dotted) line which can be referred to as a linking indicator. In FIG. 1A, only an outer linking indicator 18 is shown. Furthermore, the xe2x80x9cMy Computerxe2x80x9d and xe2x80x9cNetworkxe2x80x9d objects are visually anchored to outer linking indicator 18 using small boxes or nodes which contain a plus sign (+). These nodes (expansion controls) indicate that there are other directories or folders present within the respective items, and selection of the nodes (by pointing and clicking) can be used to further expand or collapse the directory structures, as shown in FIGS. 1B-1D.
As seen in FIG. 1B, when the expansion control 21 adjacent xe2x80x9cMy Computerxe2x80x9d is selected, the xe2x80x9c+xe2x80x9d indicator symbol changes to a minus sign (xe2x88x92), and the various items within that object are displayed as part of the directory tree in pane 12. In other words, the presence of a particular indicator symbol xe2x80x9c+xe2x80x9d or xe2x80x9cxe2x88x92xe2x80x9d provides an indication of whether the object is in a collapsed state or in an expanded state. When neither symbol appears to the left of a directory/device, no directories (or subdirectories) exist as a subset of that object (e.g., the xe2x80x9cRecycle Binxe2x80x9d). FIG. 1B also uses an inner linking indicator 23 (another vertical dotted line) to connect the various objects that reside within the expanded xe2x80x9cMy Computer,xe2x80x9d i.e., at the next level in the hierarchy.
Oftentimes, expansion of a directory tree using the nodes results in a displayed tree structure which is larger than the size of the available pane. In such cases, the full directory can be scanned using scroll bars that move (pan) the available display area along the tree structure. This oversizing of the directory tree can generally arise from one of three causes. First, a selected object (branch) may have to many sibling branches (the breadth of the tree). Second, the user may have expanded multiple sibling branches (scope of use). Third, there may be too many levels of branches open (depth of the tree). These three causes are illustrated in FIGS. 1B-1D, respectively. Of course, a combination of these causes can also lead to a directory tree that is too large to fit within the confines of the pane.
In FIG. 1B, expansion control 24 has been selected in addition to control 21, resulting in an expansion that reveals various folders residing on xe2x80x9cHard drive (C:)xe2x80x9d. The number of these folders (xe2x80x9cAcroread,xe2x80x9d xe2x80x9cAuthorty,xe2x80x9d etc.) is so high that they cannot all be shown within pane 12. Accordingly, a vertical scroll bar 26 is generated by the GUI in a conventional fashion to allow vertical scrolling of the entire tree structure.
In FIG. 1C, expansion controls 28 and 30 have been selected in addition to control 21, resulting in an expansion that reveals various folders residing on the CD-ROM device xe2x80x9c(D:)xe2x80x9d, and on the xe2x80x9cNetworkxe2x80x9d. Again, the total number of these folders is so high that they cannot all be shown within pane 12, and vertical scroll bar 26 is generated.
In FIG. 1D, expansion controls 32, 34, 36 and 38 have been selected in addition to control 21, resulting in an expansion that reveals various folders residing within a five-level deep folder entitled xe2x80x9cAustin.xe2x80x9d The number of levels reached, combined with the number of folders at the fifth level, result in a tree expansion that is again too large to fit within the available display area.
There are several methods of adjusting the display (GUI) to allow viewing of more of a directory tree that has been partially obscured due to excessive expansion. First, the size of pane 12 may be changed in some GUIs, by selecting the pane boundary within window 14 and xe2x80x9cdraggingxe2x80x9d it to the right, without adjusting the overall size of window 14. Second, the boundaries of window 14 can be alternatively (or additionally) resized with a corresponding increase in the size of pane 12 resulting. Finally, a user can collapse previously expanded nodes of the tree so as to hide or obscure lower level branches of those nodes, but this procedure must be performed manually, and can be very tedious and time-consuming. It would, therefore, be desirable to devise a method of simplifying the display of a directory tree to avoid oversizing the tree as a result of node expansion. It would be further advantageous if the method could retain the current behavior and user interaction for GUIs, and extend the functionality without unduly increasing the visual complexity.
It is therefore one object of the present invention to provide a computer system having an improved method of displaying logical file system objects residing on the computer system, such as hardware devices, directories, subdirectories, files and symbolic links.
It is another object of the present invention to provide such a method that uses a directory tree to visually present the information.
It is yet another object of the present invention to provide a method of simplifying the viewing of a directory tree to avoid oversizing of the tree when a node thereof is expanded to reveal a large number of branches.
The foregoing objects are achieved in a method of viewing a directory tree containing logical file system objects residing on a computer system, generally comprising the steps of displaying a directory tree on a display device of the computer system utilizing a graphical user interface, expanding a first node of the tree to reveal one or more branches of the first node, expanding a second node of the tree to reveal one or more branches of the second node, and automatically collapsing the first node of the tree to conceal the one or more branches of the first node in response to said expanding of the second node, thus limiting overall expansion of the tree. The user can toggle the setting so as to selectively enable or disable the limitation of expansion of nodes. A pull-down menu can be provided which contains the xe2x80x9climit expansionxe2x80x9d command, and this command can be selected from the pull-down menu using a graphical pointing device (mouse), or accessed via a keyboard command.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.